While Asynchronous Transfer Mode (ATM) was originally conceived as a carrier of integrated traffic, recent momentum for the rapid standardization of the technology has come from data networking applications. Since most data applications cannot predict their own bandwidth requirements, they usually require a service that allows all competing active virtual connections (VCs) to dynamically share the available bandwidth. The unspecified bit rate (UBR) and the available bit rate (ABR) service classes in ATM have been developed specifically to support data applications.
The UBR service is designed for those data applications that want to use any available bandwidth and are not sensitive to cell loss or delay. Such connections are not rejected on the basis of bandwidth shortage and are not policed for their usage behavior. During congestion, cells may be lost but the sources are not expected to reduce their cell rates. Instead, these applications may have their own higher-level loss recovery and retransmission mechanisms, such as the window flow control employed by transmission control protocol (TCP). The advantage of using UBR service for data transport is its simplicity and a minimal interaction required between users and the ATM network.
The ABR service has been developed with the goal of minimizing switch buffer requirements and cell loss in transporting data, and allowing users to have fair access to the available bandwidth. To achieve such service requirements, the ABR service uses congestion control at the ATM layer. It requires network switches to constantly monitor the traffic load and feed the information back to the sources. The sources are expected to adjust their input to the network dynamically based on the congestion status of the network. Thus, the benefits of ABR over UBR come at the expense of increased complexity in switches and end systems. Moreover, ABR also requires a certain level of interoperability among network switches.
In fact, there has been a continuing debate in the networking community about the need for ABR service. A major argument against ABR is that while ABR assumes that the end systems comply with the ABR source behavior, most current applications are only connected to ATM via legacy networks such as Ethernet. Therefore, ABR may only push congestion to the ATM network edges and cannot provide flow control on an end-to-end basis.
Furthermore, most users today are typically either not able to specify the range of traffic parameters needed to request most ATM services, or are not equipped to comply with the source behavior rules required by existing ATM services. As a result, there are many existing users for whom the benefits of ATM service guarantees remain unattainable. Those users access ATM networks mostly through UBR connections, which provide no service guarantees. In view of this, R. Guerin and J. Heinanen, "UBR+ Serve Category Definition", ATM Forum Contribution 96-1598, December 1996, have proposed a new service, is originally named UBR+ but now called Generic Frame Rate or GFR, which will provide users with some level of service guarantees yet require minimal interaction between users and ATM networks.
The GFR service specifies that a user should be provided with a minimum service rate guarantee and with fair access to any excess available bandwidth. In other words, the GFR service will guarantee to a user a minimum throughput when the network is congested, while allowing a user to send at a higher rate when additional bandwidth is available.
U.S. Pat. No. 4,769,810 ("Packet Switching System Arranged for Congestion Control Through Bandwidth Management") and U.S. Pat. No. 4,769,811 ("Packet Switching System Arranged for Congestion Control"), both to Eckberg, Jr., et al., describe several algorithms which attempt to provide comparable service by "marking" certain packets.
Upon arrival of a packet at a network boundary, a counter corresponding to a virtual connection is incremented by the number of bytes in the packet plus a fixed amount k. The counter is decremented by another fixed amount c at regular time intervals. If the counter exceeds some moving threshold, the packet is marked for possible discard at some other node, although marked packets are not necessarily discarded. If a node becomes congested, marked packets are dropped by the node.